package cn.scau.server.service;

import cn.scau.server.pojo.Dept;
import cn.scau.server.pojo.EmpPos;
import cn.scau.server.vo.EmpPosDeptVO;
import cn.scau.server.vo.ResultVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 代码不跑我先跑
 * @since 2025-03-30
 */
public interface DeptService extends IService<Dept> {
    // 构建部门和员工的树状结构
    public Component buildTree();
    // 新增部门
    public ResultVO addDept(String name, String parentName);
    // 删除部门
    public ResultVO deleteDeptByName(String name);
    // 查找当前部门下的所有员工信息
    public ResultVO<List<EmpPosDeptVO>> getEmpsUnderDept(String deptName);
    // 计算树的层高
    public int getDeptTreeHeight();
    // 根据当前员工ID获取所属部门及其所有子部门的信息
    public ResultVO<List<Dept>> collectAllSubDeptsByEmpId();
    //根据部门ID获取部门名称
    public ResultVO<String> getDeptNameById(Integer deptId);
    //获取部门的父组织
    Integer findParent(Integer deptId);
}
